<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>Git LFS</title>
</head>
<body>
    <h1>Git 大文件存储</h1>
    <p>
        Git Large File Storage (<a href="https://git-lfs.github.io/" target="_blank">LFS</a>) 是一个针对大文件的 Git 扩展。它把 Git 中的音视频、数据库、图像等大文件替换为文本指针，指向存储真实文件内容的远程服务器。
    </p>
    <p>使用 Git LFS 可以让 Git 仓库保持较小的体积，克隆会更快。</p>

    <h2 id="install">安装</h2>
    在 macOS 可以通过 Homebrew 安装：
    <pre>brew install git-lfs</pre>
    在 Windows 系统，官方建议使用 v3.1.4+，避免一个<a href="https://github.com/git-lfs/git-lfs/security/advisories/GHSA-6rw3-3whw-jvjj" target="_blank">已知安全漏洞</a>。

    <h2 id="config">初次设置</h2>
    <ol>
        <li>
            下载安装扩展后，需要为当前账户设置 Git LFS：
            <pre>git lfs install</pre>
            每个用户账户只需设置一次。
        </li>
        <li>
            在需要使用 Git LFS 的 Git 仓库，选择需要 Git LFS 保管的文件类型（也可以直接编辑 <code>.gitattributes</code> 文件）。可以在任意时刻修改文件扩展的配置参数。
            <pre>git lfs track "*.psd"</pre>
            同时，要确保 <code>.gitattributes</code> 处于版本控制：
            <pre>git add .gitattributes</pre>
            注意，定义文件类型，并不会把现存的文件转换到 Git LFS。如果要把其他分支或以往的文件转移，可以使用 <code>git lfs migrate</code> 命令。
        </li>
        <li>
            剩下的操作与普通 Git 操作一样了。
            <pre>git add file.psd
git commit -m "Add design file"
git push origin main</pre>
        </li>
    </ol>

    <h2 id="tutorial">常用命令</h2>
    <p>官方 <a href="https://github.com/git-lfs/git-lfs/wiki/Tutorial" target="_blank" rel="noopener noreferrer">Tutorial</a> 提供了常用命令。</p>

    <p>如果要查看 git-lfs 跟踪的文件模式，执行不带参数的 track 命令：</p>
    <pre>git lfs track</pre>

    <p>查看所有被跟踪的文件列表，使用 <code>git lfs ls-files</code>。</p>
    <p><code>git lfs env</code> 可以查看 Git LFS 相关的 URL 参数。</p>
    <p><code>git lfs pull</code> 下载当前分支对应的所有的 Git LFS 文件。</p>
</body>
</html>